The explosive growth of the internet has led to a desire to integrate legacy (i.e., existing) applications with the World Wide Web. In particular, applications developers want to allow existing applications to receive information across the internet, post information to Web servers, and to receive inputs from and display outputs in Web browsers. Additionally, the growth of the internet has led to a need for interactive communications between client-side (local) applications and browser applications.
In one approach for integrating client-side applications with the Web, an application programming interface, such as the Common Client Interface offered by Mosaic is used This interface allows an application to register callbacks associated with particular MIME types encountered by the browser, and allows an application to send requests to a server by causing the browser to pass a Uniform Resource Locator (URL).
This interface, however, has a number of drawbacks. For example, the interface is browser-specific. Application code that uses the interface can communicate only through a single browser. To make use of another browser, the application code needs to be relinked with a browser-specific CCI library. Additionally, the interface does not allow for interactive communications between the local application and the browser.
Based on the foregoing, a need exists for a common coordination mechanism for communicating with local applications. In particular, a need exists for a browser application that can be used as the control point for coordinating activities for local applications. A further need exists for using a browser application to coordinate the flow of information between local applications and the browser application and between local applications and one or more remote servers. A yet further need exists for a facility that allows local applications to be interactive with the browser, that is to have sessions with the browser.